home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
c
/
flash-0.4.3.lha
/
flash-0.4.3
/
Lib
/
swf.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-02-21
|
5KB
|
187 lines
#ifndef _SWF_H_
#define _SWF_H_
#ifdef DUMP
#include "bitstream.h"
#endif
extern int debug;
// Global Types
typedef unsigned long U32, *P_U32, **PP_U32;
typedef signed long S32, *P_S32, **PP_S32;
typedef unsigned short U16, *P_U16, **PP_U16;
typedef signed short S16, *P_S16, **PP_S16;
typedef unsigned char U8, *P_U8, **PP_U8;
typedef signed char S8, *P_S8, **PP_S8;
typedef signed long SFIXED, *P_SFIXED;
typedef signed long SCOORD, *P_SCOORD;
typedef unsigned long BOOL;
#define ZOOM(v,f) ((v)/(f))
#include "matrix.h"
#include "cxform.h"
#include "rect.h"
#include <sys/time.h>
#define ST struct timeval t1,t2;
#define START gettimeofday(&t1,0)
#define STOP(msg) gettimeofday(&t2,0); printf("%s Delta = %d ms\n", msg, (t2.tv_sec-t1.tv_sec)*1000+(t2.tv_usec-t1.tv_usec)/1000); fflush(stdout);
// Start Sound Flags
enum {
soundHasInPoint = 0x01,
soundHasOutPoint = 0x02,
soundHasLoops = 0x04,
soundHasEnvelope = 0x08
// the upper 4 bits are reserved for synchronization flags
};
// Flags for Sound Format
enum SounfFlags {
soundIsStereo = 0x01,
soundIs16bit = 0x02,
soundIsADPCMCompressed = 0x10
};
// Flags for defining Button States
enum ButtonState {
stateHitTest = 0x08,
stateDown = 0x04,
stateOver = 0x02,
stateUp = 0x01
};
// Actions
enum Action {
// Internal actions
ActionRefresh = 0x00,
ActionPlaySound = 0x01,
// Normal actions
ActionGotoFrame = 0x81,
ActionGetURL = 0x83,
ActionNextFrame = 0x04,
ActionPrevFrame = 0x05,
ActionPlay = 0x06,
ActionStop = 0x07,
ActionToggleQuality = 0x08,
ActionStopSounds = 0x09,
ActionWaitForFrame = 0x8a,
ActionSetTarget = 0x8b,
ActionGoToLabel = 0x8c
};
class Sound;
struct ActionRecord {
Action action;
// GotoFrame & WaitForFrame
long frameIndex;
// GetURL
char *url;
char *target;
// GotoLabel
char *frameLabel;
// WaitForFrame
long skipCount;
// Sound
Sound *sound;
struct ActionRecord *next;
};
struct Gradient {
int nbGradients;
unsigned char ratio[8];
Color color[8];
// For rendering
Color *ramp;
Matrix imat;
long xOffset;
long yOffset;
};
enum FontFlags {
fontUnicode = 0x20,
fontShiftJIS = 0x10,
fontANSI = 0x08,
fontItalic = 0x04,
fontBold = 0x02,
fontWideCodes = 0x01
};
enum TextFlags {
isTextControl = 0x80,
textIsLarge = 0x70,
textHasFont = 0x08,
textHasColor = 0x04,
textHasYOffset= 0x02,
textHasXOffset= 0x01
};
#ifndef NULL
#define NULL 0
#endif
// Tag values that represent actions or data in a Flash script.
enum
{
stagEnd = 0,
stagShowFrame = 1,
stagDefineShape = 2,
stagFreeCharacter = 3,
stagPlaceObject = 4,
stagRemoveObject = 5,
stagDefineBits = 6,
stagDefineButton = 7,
stagJPEGTables = 8,
stagSetBackgroundColor = 9,
stagDefineFont = 10,
stagDefineText = 11,
stagDoAction = 12,
stagDefineFontInfo = 13,
stagDefineSound = 14, // Event sound tags.
stagStartSound = 15,
stagStopSound = 16,
stagDefineButtonSound = 17,
stagSoundStreamHead = 18,
stagSoundStreamBlock = 19,
stagDefineBitsLossless = 20, // A bitmap using lossless zlib compression.
stagDefineBitsJPEG2 = 21, // A bitmap using an internal JPEG compression table.
stagDefineShape2 = 22,
stagDefineButtonCxform = 23,
stagProtect = 24, // This file should not be importable for editing.
// These are the new tags for Flash 3.
stagPlaceObject2 = 26, // The new style place w/ alpha color transform and name.
stagRemoveObject2 = 28, // A more compact remove object that omits the character tag (just depth).
stagDefineShape3 = 32, // A shape V3 includes alpha values.
stagDefineText2 = 33, // A text V2 includes alpha values.
stagDefineButton2 = 34, // A button V2 includes color transform, alpha and multiple actions
stagDefineBitsJPEG3 = 35, // A JPEG bitmap with alpha info.
stagDefineBitsLossless2 = 36, // A lossless bitmap with alpha info.
stagDefineSprite = 39, // Define a sequence of tags that describe the behavior of a sprite.
stagNameCharacter = 40, // Name a character definition, character id and a string, (used for buttons, bitmaps, sprites and sounds).
stagFrameLabel = 43, // A string label for the current frame.
stagSoundStreamHead2 = 45, // For lossless streaming sound, should not have needed this...
stagDefineMorphShape = 46, // A morph shape definition
stagDefineFont2 = 48
};
#ifndef false
#define false 0
#endif
#ifndef true
#define true 1
#endif
#endif /* _SWF_H_ */